package com.ruoyi.system.domain.fx;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单对象 fx_order
 *
 * @author ruoyi
 * @date 2024-07-23
 */
@Data
public class FxOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private String id;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String userName;

    /** 用户手机号 */
    @Excel(name = "用户手机号")
    private String phoneNumber;

    /** 区域id */
    @Excel(name = "区域id")
    private Long regionId;

    /** 区域名称 */
    @Excel(name = "区域名称")
    private String regionName;

    /** 门店id */
    @Excel(name = "门店id")
    private Long storeId;

    /** 门店名称 */
    @Excel(name = "门店名称")
    private String storeName;

    /** 实付金额 */
    @Excel(name = "实付金额")
    private String payMoney;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date paymentTime;

    /** 配送费 */
    @Excel(name = "配送费")
    private String deliveryCost;

    /** 项目状态（1待发货，2配送中，3待评价，4已完成,5已退单） */
    @Excel(name = "项目状态", readConverterExp = "1=待发货，2配送中，3待评价，4已完成,5已退单")
    private Long orderStatus;

    /** 是否删除（0存在，1删除） */
    @Excel(name = "是否删除", readConverterExp = "0=存在，1删除")
    private Long delFlag;

    /** 商户订单号 */
    @Excel(name = "商户订单号")
    private String outTradeNo;

    /** 微信支付订单号 */
    @Excel(name = "微信支付订单号")
    private String transactionId;

    /** 商户退款单号 */
    @Excel(name = "商户退款单号")
    private String outRefundNo;

    /** 收货人姓名 */
    @Excel(name = "收货人姓名")
    private String receiveName;

    /** 收货人地址 */
    @Excel(name = "收货人地址")
    private String receiveAddress;

    /** 收货人电话 */
    @Excel(name = "收货人电话")
    private String receivePhonenum;

    /** 收货位置经度 */
    private String receiveLongitude;

    /** 收货位置纬度 */
    private String receiveLatitude;

    /** 收货备注 */
    @Excel(name = "收货备注")
    private String receiveRemark;

    /** 收货确认图片 */
    @Excel(name = "收货确认图片")
    private String receiveImgUrl;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date sendTime;

    /** 收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date receiveTime;

    /** 订单类型（1店铺，2客户） */
    @Excel(name = "订单类型", readConverterExp = "1=店铺,2=客户,3=线下")
    private Long orderType;

    @Excel(name = "配送方式", readConverterExp = "1=普通,2=加急")
    private Integer deliveryType;

    @Excel(name = "分銷金額")
    private String distributionValue;

    /** 供应商id */
    @Excel(name = "供应商id")
    private String supplierId;

    /**
     * 搜索
     */
    private String search;

    private String time;

    private Long[] typeArr; // 订单区分（2供应商，1 3 店铺）

    /** 用户头像 */
    private String userImg;

    /** 门店头像 */
    private String storeImg;

    /** 门店电话 */
    private String storePhone;

    /** 供应商信息 */
    private String supplierName;
    private String supplierImg;
    private String supplierPhone;

    private Long userRole; // 用户角色

    /**
     * 达达配送 0没有  1已配送
     */
    private Integer dadaNum;
    /** 门店地址 */
    private String storeDetail;
    /** 门店经度 */
    private String storeLongitude;
    /** 门店维度 */
    private String storeLatitude;

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public String getDistributionValue() {
        return distributionValue;
    }

    public void setDistributionValue(String distributionValue) {
        this.distributionValue = distributionValue;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setPhoneNumber(String phoneNumber)
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber()
    {
        return phoneNumber;
    }
    public void setRegionId(Long regionId)
    {
        this.regionId = regionId;
    }

    public Long getRegionId()
    {
        return regionId;
    }
    public void setRegionName(String regionName)
    {
        this.regionName = regionName;
    }

    public String getRegionName()
    {
        return regionName;
    }
    public void setStoreId(Long storeId)
    {
        this.storeId = storeId;
    }

    public Long getStoreId()
    {
        return storeId;
    }
    public void setStoreName(String storeName)
    {
        this.storeName = storeName;
    }

    public String getStoreName()
    {
        return storeName;
    }
    public void setPayMoney(String payMoney)
    {
        this.payMoney = payMoney;
    }

    public String getPayMoney()
    {
        return payMoney;
    }
    public void setPaymentTime(Date paymentTime)
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime()
    {
        return paymentTime;
    }
    public void setDeliveryCost(String deliveryCost)
    {
        this.deliveryCost = deliveryCost;
    }

    public String getDeliveryCost()
    {
        return deliveryCost;
    }
    public void setOrderStatus(Long orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public Long getOrderStatus()
    {
        return orderStatus;
    }
    public void setOutTradeNo(String outTradeNo)
    {
        this.outTradeNo = outTradeNo;
    }

    public String getOutTradeNo()
    {
        return outTradeNo;
    }
    public void setTransactionId(String transactionId)
    {
        this.transactionId = transactionId;
    }

    public String getTransactionId()
    {
        return transactionId;
    }
    public void setOutRefundNo(String outRefundNo)
    {
        this.outRefundNo = outRefundNo;
    }

    public String getOutRefundNo()
    {
        return outRefundNo;
    }
    public void setReceiveName(String receiveName)
    {
        this.receiveName = receiveName;
    }

    public String getReceiveName()
    {
        return receiveName;
    }
    public void setReceiveAddress(String receiveAddress)
    {
        this.receiveAddress = receiveAddress;
    }

    public String getReceiveAddress()
    {
        return receiveAddress;
    }
    public void setReceivePhonenum(String receivePhonenum)
    {
        this.receivePhonenum = receivePhonenum;
    }

    public String getReceivePhonenum()
    {
        return receivePhonenum;
    }
    public void setReceiveLongitude(String receiveLongitude)
    {
        this.receiveLongitude = receiveLongitude;
    }

    public String getReceiveLongitude()
    {
        return receiveLongitude;
    }
    public void setReceiveLatitude(String receiveLatitude)
    {
        this.receiveLatitude = receiveLatitude;
    }

    public String getReceiveLatitude()
    {
        return receiveLatitude;
    }
    public void setSendTime(Date sendTime)
    {
        this.sendTime = sendTime;
    }

    public Date getSendTime()
    {
        return sendTime;
    }
    public void setReceiveTime(Date receiveTime)
    {
        this.receiveTime = receiveTime;
    }

    public Date getReceiveTime()
    {
        return receiveTime;
    }
    public void setOrderType(Long orderType)
    {
        this.orderType = orderType;
    }

    public Long getOrderType()
    {
        return orderType;
    }

    public Integer getDadaNum() {
        return dadaNum;
    }

    public void setDadaNum(Integer dadaNum) {
        this.dadaNum = dadaNum;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("userName", getUserName())
            .append("phoneNumber", getPhoneNumber())
            .append("regionId", getRegionId())
            .append("regionName", getRegionName())
            .append("storeId", getStoreId())
            .append("storeName", getStoreName())
            .append("payMoney", getPayMoney())
            .append("paymentTime", getPaymentTime())
            .append("deliveryCost", getDeliveryCost())
            .append("orderStatus", getOrderStatus())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("outTradeNo", getOutTradeNo())
            .append("transactionId", getTransactionId())
            .append("outRefundNo", getOutRefundNo())
            .append("receiveName", getReceiveName())
            .append("receiveAddress", getReceiveAddress())
            .append("receivePhonenum", getReceivePhonenum())
            .append("receiveLongitude", getReceiveLongitude())
            .append("receiveLatitude", getReceiveLatitude())
            .append("sendTime", getSendTime())
            .append("receiveTime", getReceiveTime())
            .append("orderType", getOrderType())
            .toString();
    }
}
